SpatialMap_Dense_BallGame

演示如何使用稠密空间地图。

  • 演示如何渲染稠密空间地图网格

  • 演示如何使用稠密空间地图实现碰撞和遮挡

参考: 运动跟踪与EasyAR功能

用法

../../_images/image_42.png
标记1:显示系统状态和操作提示。
标记2:是否让网格透明。
标记3:是否渲染网格。

点击屏幕会射出球体。在mesh生成之后可以将球打到mesh上。

详解

构建dense spatial map

在session中有一个 DenseSpatialMapBuilderFrameFilter 运行的情况下可以构建 dense spatial map。

开关mesh渲染

DenseSpatialMapBuilderFrameFilter.RenderMesh 可以控制mesh渲染的开关。

public void RenderMesh(bool show)
{
    ...
    dense.RenderMesh = show;
}

渲染透明mesh

DenseSpatialMapBuilderFrameFilter.MeshColor 可以控制mesh的颜色,包括 alpha 通道值。

public void TransparentMesh(bool trans)
{
    ...
    dense.MeshColor = trans ? Color.clear : meshColor;
}

发射球体

从 camera发射球体,它们会由 Unity 的物理系统驱动。

Ray ray = Camera.main.ScreenPointToRay(Input.touches[0].position);
var launchPoint = Camera.main.transform;
var ball = Instantiate(Ball, launchPoint.position, launchPoint.rotation);
var rigid = ball.GetComponent<Rigidbody>();
rigid.velocity = Vector3.zero;
rigid.AddForce(ray.direction * 15f + Vector3.up * 5f);